package model

import (
	"gorm.io/gorm"
)

type WmsGoodsCate struct {
	gorm.Model
	Uid      uint   `json:"uid" gorm:"not null;default:0;"`
	Name     string `json:"name" gorm:"not null;default:'';unique;"`
	Icon     string `json:"icon" gorm:"not null;default:'';"`
	Enable   int8   `json:"enable" gorm:"not null;default:1;comment: 0=未知 1=启用 2=禁用"`
	Sort     int    `json:"sort" gorm:"not null;default:0;"`
	Memo     string `json:"memo" gorm:"not null;default:'';"`
	ParentId uint   `json:"parentId" gorm:"not null;default:0;"`
}

type WmsGoods struct {
	gorm.Model
	CateId    uint    `json:"cateId" gorm:"not null;default:0;comment:商品类别ID;"`
	Uid       uint    `json:"uid" gorm:"not null;default:0;"`
	Code      string  `json:"code" gorm:"not null;default:'';uniqueIndex;"`
	Name      string  `json:"name" gorm:"not null;default:'';"`
	Enable    int8    `json:"enable" gorm:"not null;default:1;comment: 0=未知 1=启用 2=禁用"`
	IsGift    int8    `json:"isGift" gorm:"not null;default:2;comment:是否赠品 0=未知 1=是 2=不是;"`
	Barcode   string  `json:"barcode" gorm:"not null;default:'';"`
	Specs     string  `json:"specs" gorm:"not null;default:'';comment:规格"`
	Unit      string  `json:"unit" gorm:"not null;default:'';comment:单位"`
	Weight    string  `json:"weight" gorm:"type:decimal(12,2);not null;default:0;comment:货物默认重量;"`
	Volume    string  `json:"volume" gorm:"type:decimal(12,2);not null;default:0;comment:货物默认体积;"`
	Memo      string  `json:"memo" gorm:"not null;default:'';"`
	Price     float64 `json:"price" gorm:"type:decimal(12,2);not null;default:0;comment:价格;"`
	MinStock  int     `json:"minStock" gorm:"not null;default:0;comment:安全库存"` // TODO 需要分仓库预警？？
	ValidDate string  `json:"validDate" gorm:"comment:有效期;"`
	Producer  string  `json:"producer" gorm:"not null;default:'';comment:产地"`
	Registry  string  `json:"registry" gorm:"not null;default:'';comment:注册证号"`
	Licence   string  `json:"licence" gorm:"not null;default:'';comment:许可证号"`
	// PinYin  string `json:"pinYin" gorm:"not null;default:'';"`
}

type WmsGoodsImage struct {
	ID      uint   `json:"ID" gorm:"primaryKey"`
	GoodsId uint   `json:"goodsId" gorm:"not null;default:0;"`
	Name    string `json:"name" gorm:"not null;default:'';"`
	Ext     string `json:"ext" gorm:"not null;default:'';"`
	Path    string `json:"path" gorm:"not null;default:'';"`
}
